package com.xtm.exercise.base.A15jdk8Demo.java8;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;

/*
    方法引用
 */
public class FunctionDemo {

    @Test
    public void test01(){
        // 创建集合
        List<String> list = new ArrayList<>();

        // 添加元素
        list.add("e");
        list.add("c");
        list.add("a");
        list.add("d");
        list.add("b");

        // 排序
        list.sort((s1, s2) -> s1.compareTo(s2));

        // 遍历
        //传统方法
//        list.forEach((s) -> System.out.println(s));
        //lambda方式
//        list.forEach(System.out::println);
        list.forEach(n -> System.out.println(n));

    }

    public static void main(String[] args) {
        // 调用
        long l1 = testAbs(-10, (s) -> Math.abs(s));//返回 int 值的绝对值

        // 改进
        long l2 = testAbs(-10, Math::abs);

        System.out.println(l1);
        System.out.println(l2);
    }

    public static long testAbs(long s, Function<Long, Long> fun) {
        Long l = fun.apply(s);
        return l;
    }

}
